package com.tjbank.cssys.mybatis.mapper;




import com.tjbank.cssys.mybatis.entity.IamLog;
import com.tjbank.cssys.mybatis.entity.IamLogKey;
import com.tjbank.cssys.mybatis.sqlbuilder.IamLogSqlBuilder;

import java.util.List;

public interface IamLogMapper {

    /**
     * 单条插入新增记录
     *
     * @param iamLog
     * @return
     * @throws Exception
     */
    public int addInsert(IamLog iamLog) throws RuntimeException;

    /**
     * 批量插入新增记录
     *
     * @param listIamLog
     * @return
     * @throws Exception
     */
    public int insertUseBatch(List<IamLog> listIamLog) throws RuntimeException;




    /**
     * 根据SqlBuilder删除记录
     *
     * @param iamLogSqlBuilder
     * @return
     * @throws Exception
     */
    public int deleteBySqlBuilder(IamLogSqlBuilder iamLogSqlBuilder) throws RuntimeException;

    /**
     * 根据主键删除记录
     *
     * @param iamLogKey
     * @return
     * @throws Exception
     */
    public int deleteByPrimaryKey(IamLogKey iamLogKey) throws RuntimeException;



    /**
     * 根据主键更新记录，空值会持久化到数据库
     *
     * @param iamLogKey
     * @return
     * @throws Exception
     */
    public int updateByPrimaryKey(IamLogKey iamLogKey) throws RuntimeException;

    /**
     * 根据主键更新记录，空值不会持久化到数据库
     *
     * @param iamLogKey
     * @return
     * @throws Exception
     */
    public int updateByPrimaryKeySelective(IamLogKey iamLogKey) throws RuntimeException;




    /**
     * 根据SqlBuilder查询列表，返回值包含大字段栏位
     *
     * @param iamLogSqlBuilder
     * @return
     * @throws Exception
     */
    public List<IamLog> selectBySqlBuilder(IamLogSqlBuilder iamLogSqlBuilder) throws RuntimeException;



    /**
     * 根据主键查询单个对象
     *
     * @param iamLogKey
     * @return
     * @throws Exception
     */
    public IamLog selectByPrimaryKey(IamLogKey iamLogKey) throws RuntimeException;


}
